﻿// 204. 计数质数.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

using namespace std;
/*
https://leetcode.cn/problems/count-primes/description/

给定整数 n ，返回 所有小于非负整数 n 的质数的数量 。


示例 1：
输入：n = 10
输出：4
解释：小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。

示例 2：
输入：n = 0
输出：0

示例 3：
输入：n = 1
输出：0

提示：
0 <= n <= 5 * 106
*/

class Solution {
public:
    int primes[5000010];
    int countPrimes(int n) {
        memset(primes,0,sizeof primes);
        for (int i = 2; i <= n; i++) {
            if (primes[i] == 1) continue;
            for (int j = i + i; j <= n; j += i) {
                primes[j] = 1;
            }
        }
        int ans = 0;
        for (int i = 2; i <= n; i++) {
            if (primes[i] == 0) ans++;
        }
        return ans;
    }
};

int main()
{
    std::cout << "Hello World!\n";
}

 